package modele;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;

@Entity
public class Match {
	private long idMatch;
	private Equipe equipe1;
	private Equipe equipe2;
	private Collection<But> buts;
	private Arbitre arbitre;
	private String etat;
	private Equipe vainqueur;
	private boolean prolongation;
	private boolean tirAuButs;
	private int numeroMatch;
	
	public Match(){
		buts = new ArrayList<But>();
		etat = "A venir";
	}
	
	/** 
	 * Getters / Setters 
	 */
	
	@Id
	@GeneratedValue
	public long getIdMatch() {
		return idMatch;
	}
	public void setIdMatch(long idMatch) {
		this.idMatch = idMatch;
	}
	@ManyToOne
	@JoinColumn(name="idEquipe1")
	public Equipe getEquipe1() {
		return equipe1;
	}
	public void setEquipe1(Equipe equipe1) {
		this.equipe1 = equipe1;
	}
	@ManyToOne
	@JoinColumn(name="idEquipe2")
	public Equipe getEquipe2() {
		return equipe2;
	}
	public void setEquipe2(Equipe equipe2) {
		this.equipe2 = equipe2;
	}
	@ManyToOne
	@JoinColumn(name="idArbitre")
	public Arbitre getArbitre() {
		return arbitre;
	}
	public void setArbitre(Arbitre arbitre) {
		this.arbitre = arbitre;
	}
	public String getEtat() {
		return etat;
	}
	public void setEtat(String etat) {
		this.etat = etat;
	}
	@ManyToOne
	public Equipe getVainqueur() {
		return vainqueur;
	}
	public void setVainqueur(Equipe vainqueur) {
		this.vainqueur = vainqueur;
	}
	public boolean isProlongation() {
		return prolongation;
	}
	public void setProlongation(boolean prolongation) {
		this.prolongation = prolongation;
	}
	public boolean isTirAuButs() {
		return tirAuButs;
	}
	public void setTirAuButs(boolean tirAuButs) {
		this.tirAuButs = tirAuButs;
	}
	@OneToMany
	public Collection<But> getButs() {
		return buts;
	}
	public void addButs(But but){
		this.buts.add(but);
	}
	public void setButs(Collection<But> b){
		for (But but : b){
			if(!this.buts.contains(but)){
				addButs(but);
			}
		}
	}

	public int getNumeroMatch() {
		return numeroMatch;
	}

	public void setNumeroMatch(int numeroMatch) {
		this.numeroMatch = numeroMatch;
	}
	
	
}
